- 1400/07/14
- 0
- 159
نمایش ندادن RefId و Authority در پروژه
سلام و درود استاد
من در قسمت 6-33 RequestPay Management از دوره ی رایگان Asp.net core دیدم که شما توی کد هاتون RefId و Authority رو اضافه کردید اما تست نکردید که نمایش میده یا نه، که نمایش نمیده! تونستم Authority رو نمایش بدم اما RefId کلا تعریف نشده. چندین راه رفتم اما باز هم 0 برمیگردونه.
اگه میشه لطفا راهنمایی کنید.
namespace EndPoint.Site.Controllers
{
[Authorize]
public class PayController : Controller
{
private readonly IAddRequestPayService _addRequestPayService;
private readonly ICartService _cartService;
private readonly CookiesManeger _cookiesManeger;
private readonly Payment _payment;
private readonly Authority _authority;
private readonly Transactions _transactions;
private readonly IGetRequestPayService _getRequestPayService;
private readonly IAddNewOrderService _addNewOrderService;
public PayController(IAddRequestPayService addRequestPayService
, ICartService cartService
, IGetRequestPayService getRequestPayService
, IAddNewOrderService addNewOrderService
)
{
_addRequestPayService = addRequestPayService;
_cartService = cartService;
_cookiesManeger = new CookiesManeger();
var expose = new Expose();
_payment = expose.CreatePayment();
_authority = expose.CreateAuthority();
_transactions = expose.CreateTransactions();
_getRequestPayService = getRequestPayService;
_addNewOrderService = addNewOrderService;
}
public async Task<IActionResult> Index()
{
long? UserId = ClaimUtility.GetUserId(User);
var cart = _cartService.GetMyCart(_cookiesManeger.GetBrowserId(HttpContext), UserId);
if (cart.Data.SumAmount > 0)
{
var requestPay = _addRequestPayService.Execute(cart.Data.SumAmount, UserId.Value);
// ارسال در گاه پرداخت
var result = await _payment.Request(new DtoRequest()
{
Mobile = "09121112222",
CallbackUrl = $"https://localhost:44327/Pay/Verify?guid={requestPay.Data.guid}",
Description = "پرداخت فاکتور شماره:" + requestPay.Data.RequestPayId,
Email = requestPay.Data.Email,
Amount = requestPay.Data.Amount,
MerchantId = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}, ZarinPal.Class.Payment.Mode.sandbox);
return Redirect($"https://sandbox.zarinpal.com/pg/StartPay/{result.Authority}");
}
else
{
return RedirectToAction("Index", "Cart");
}
}
public async Task<IActionResult> Verify(Guid guid, string authority, string status)
{
var requestPay = _getRequestPayService.Execute(guid);
var verification = await _payment.Verification(new DtoVerification
{
Amount = requestPay.Data.Amount,
MerchantId = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
Authority = authority
}, Payment.Mode.sandbox);
long? UserId = ClaimUtility.GetUserId(User);
var cart = _cartService.GetMyCart(_cookiesManeger.GetBrowserId(HttpContext), UserId);
int refId = اینجا باید رف آیدی رو بگیرم که نمیدونم از کجا باید گرفته بشه
if (verification.Status == 100)
{
_addNewOrderService.Execute(new RequestAddNewOrderSericeDto
{
CartId = cart.Data.CartId,
UserId = UserId.Value,
Authority=authority,
RefId = refId,
RequestPayId = requestPay.Data.Id
});
//redirect to orders
return RedirectToAction("Index", "Orders");
}
else
{
//redirect to Cart
return RedirectToAction("onSuccess", "Cart");
}
return View();
}
}
public class VerificationPayResultDto
{
public int Status { get; set; }
public long RefID { get; set; }
}
}
ممنون از شما و جناب عباس نژاد
- 1400/07/14
سلام
اگه دنبال refId هستی از داخل متغیری که عملیات vrification انجام میشه میتونی بهش دسترسی داشته باشه و کدی هست که زرین پال برگشت میده
refid=verification.Refid;
پاسخی برای این باگ ارسال کنید
لطفا کدها را درون قطعه کد ارسال نمایید
برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری